<template>
    <div class="home-recommond">
        <h3>达人歌单</h3>
        <div class="wrapper" ref="wrapper">
            <ul class="content" ref="content">
                <li v-for="(item, index) in listData" :key="index" @click="selectItem(item)">
                    <div class="cover">
                        <van-image :src="item.cover" radius="1rem" />
                        <span> {{item.listen_num | numFilter(1)}}万 </span>
                    </div>
                    <span> {{item.title}} </span>
                </li>
            </ul>
        </div>
    </div>
</template>

<script>
import { betterScrollHorizontal } from '../../common/betterScroll.js'//引入betterscroll
export default {
    data() {
        return {
            listData: []
        }
    },
    created() {
        this.getSongListData()
    },
    methods: {
        //获取推荐歌单数据
        getSongListData() {
            this.$request('get', '/recommend/playlist/u')
                .then(res => {
                    console.log(res)
                    if (res.result == 100) {
                        this.listData = res.data.list;
                    }
                    //consele.log(this.listData)
                    //异步数据得一些处理
                    betterScrollHorizontal(
                        this,
                        this.$refs.wrapper,
                        this.$refs.content,
                        this.listData.length, 10);//调用横线滚动的方法
                });
        },
        //列表项的点击事件
        selectItem(item) {
            const id = item.content_id;//获取歌单的id
            // console.log(id);//控制台输出歌单id
            // 1.编程式导航，带路径的对象方式
            this.$router.push({ path: `/songlist/${id}` })
            //上诉``内容用到了ES语句中的模板字面量或模板字符串
            // 2.编程式导航，字符串路径的方式
            // this.$router.push(`/songlist/${id}`)
            // 3.编程式导航，命名的路由，并加上参数，让路由建立url
            // this.$router.push({
            //     name: "songlist",
            //     params: {
            //         id: id //由于属性和value值的名字一样，所以此语句等同于id
            //     }
            // });
        },
    },
    // //本地过滤器（局部）
    // filters: {
    //     //处理播放量的显示格式
    //     /**
    //      * 
    //      * param value: 小数位固定的位数
    //      * param num： 处理的数值
    //      */
    //     numFilter(value, num) {
    //         //把小数位固定位num位
    //         return parseFloat(value / 10000).toFixed(num)
    //     }
    // }

};
</script>

<style scoped>
/* .home-recommond>ul {
    display: flex;
    flex-wrap: wrap;
}

.home-recommond>ul>li {
    width: calc((100% - 1rem) / 3 * 1);
}

.home-recommond>ul>li:nth-of-type(3n+2) {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
} */

.cover {
    position: relative;
}

.cover>span {
    position: absolute;
    right: 0.2rem;
    bottom: 0.4rem;
    background-color: #a6a0a0;
    color: white;
    width: 5rem;
    border-radius: 1rem;
    font-size: 14px;
    display: inline-block;
}

.wrapper {
    width: 100%;
    /*容器的宽度是屏幕的宽度*/
    overflow: hidden;
}

/* content内容区的宽度要大于wrapper容器的宽度，12个列表项*/
/* ul.content {
    width: calc(12 * 10rem);
} */

ul.content li {
    /*li默认是块级元素，修改为内行元素，但是要具备块级元素的特性 */
    display: inline-block;
    width: 10rem;
    vertical-align: top;
    /*垂直方向的位置*/
}

/*li里面有两个元素：div和span，所以使用通配符 */
ul.content li * {
    margin: 0.1rem;
    /*里面的元素与li的边缘有个间距 */
}

ul.content li>span {
    font-size: 0.8rem;
    color: #54493b;
}
</style>